-- KEYS[1] Redis Set 的 key
-- ARGV[1] 用户ID
-- ARGV[2] 过期时间 (秒)

local set_name = KEYS[1]
local user_id = ARGV[1]
-- 将过期时间转换为数字
local expire_time = tonumber(ARGV[2])

-- 检查 Set 是否已存在
local exists = redis.call("EXISTS", set_name)

if exists == 0 then
    -- Set 不存在，这是第一次创建
    -- 添加用户到set中
    redis.call("SADD", set_name, user_id)
    -- 设置过期时间
    if expire_time > 0 then
        redis.call("EXPIRE", set_name, expire_time)
    end
    -- 返回 0 表示是新用户
    return 0
else
    -- Set 已存在，检测用户是否已经购买过
    if redis.call("SISMEMBER", set_name, user_id) == 1 then
        -- 用户已经购买过，返回 1
        return 1
    else
        -- 添加用户到set中
        redis.call("SADD", set_name, user_id)
        -- 返回 0 表示是新用户
        return 0
    end
end